package com.wwz.leetcode;

import com.wwz.common.ListNode;
import org.junit.Test;

public class Leetcode328 {


    @Test
    public void test() {
        ListNode head = new ListNode(1, new ListNode(2, new ListNode(3, new ListNode(4))));
        //ListNode head = new ListNode(2, new ListNode(1, new ListNode(3, new ListNode(5, new ListNode(6, new ListNode(4, new ListNode(7)))))));
        oddEvenList(head);

    }

    public ListNode oddEvenList(ListNode head) {
        if (head == null) {
            return head;
        }
        // 偶数头结点
        ListNode evenHead = head.next;
        ListNode oddCur = head, evenCur = evenHead;

        while (evenCur != null && evenCur.next != null) {
            oddCur.next = evenCur.next;
            oddCur = oddCur.next;
            evenCur.next = oddCur.next;
            evenCur = evenCur.next;
        }
        //拼接偶数链表
        oddCur.next = evenHead;
        return head;
    }

}

